Nozioni di base
Le applicazioni in CODESYS possono elaborare un'ampia varietà di caratteri, ad esempio per produrre un messaggio di errore in varie lingue. Oppure per visualizzare le visualizzazioni in una lingua selezionata dall'utente, che accetta input dell'utente in un'ampia varietà di lingue, caratteri o simboli. Se non è necessario un set di caratteri completo o se un progetto non deve essere modificato, si possono comunque usare stringhe codificate in formato Latin-1.
|
Set di caratteri |
Codice numero di pagina |
Descrizione |
Codifica dei caratteri |
|---|---|---|---|
|
ASCII |
20127 |
|
Carattere codificato a 7 bit |
|
DOS-Latino-1 |
819, 850 |
|
Carattere codificato a 8 bit |
|
Latino-1 |
28591 |
|
Carattere codificato a 8 bit |
|
Codifica Windows 1252 |
1252 |
|
Carattere codificato a 8 bit |
|
Unicode |
|
⮫ Per ulteriori informazioni, consultare il sito unicode.org. |
|
|
Unicode 14.0 |
|
144.697 caratteri |
|
|
UTF-16 |
1200 |
|
Caratteri codificati a 16 bit I caratteri sono codificati in 2 o 4 byte. |
|
UTF-8 |
65001 |
|
Tupla di parole a 8 bit per carattere I caratteri sono codificati in diverse lunghezze, da 1 a 4 byte. |
UTF-8 in CODESYS
La codifica UTF-8 è la codifica con il set di caratteri più completo. Pertanto, si consiglia di abilitare la codifica UTF-8 per i nuovi progetti e per i progetti esistenti da utilizzare in un nuovo contesto.
|
Tipo di dati |
Opzione di compilazione: Codifica UTF8 per STRING |
Quale codifica viene utilizzata a livello di progetto? |
|---|---|---|
|
STRINGA |
Abilitato |
UTF-8 |
|
Disabili |
Codifica Windows 1252 (codifica predefinita di Windows) Latino-1 |
|
|
VITE |
Abilitato |
UTF-16 |
|
Disabili |
UTF-16 |
In CODESYS, il tipo di dati «STRING» può essere codificato nei formati Latin-1 o UTF-8. Il tipo di dati «WSTRING» codifica sempre i suoi caratteri come Unicode in UTF-16.
Codifica di un singolo letterale di stringa in formato UTF-8
Anche se il formato di codifica dell'intero progetto è impostato su Latin-1, è possibile codificare un singolo letterale in formato UTF-8. A tal fine, aggiungere il prefisso di tipo «UTF8#» al letterale.
{attribute 'monitoring_encoding' := 'UTF-8'}
strVarUtf8: STRING := UTF8#'你好,世界!ÜüÄäÖö';
Per ulteriori informazioni, vedere:
Costante: UTF8# Stringa; ⮫ «Costante: Stringa UTF8# »
Attributo Pragma: ⮫ monitoring_encoding
Conversione di stringhe per la codifica UTF-8
Se si è abilitata la codifica UTF-8 a livello di progetto, si possono usare le funzioni di conversione delle stringhe come di consueto.
Manipolazione delle stringhe
Utilizzare le funzioni di libreria per manipolare le stringhe.
Se le variabili «STRING» devono essere manipolate, l'accesso a un indice di una variabile in formato ASCII porta spesso al risultato desiderato. È meglio non utilizzare questo costrutto. Non si tratta solo di un cattivo stile di programmazione. Come se non bastasse, con la codifica UTF-8, l'accesso agli indici porta a manipolazioni indesiderate delle stringhe.
Codifica UTF-8 solo per la configurazione a livello di progetto
Viene utilizzata una codifica UTF-8 se l'opzione di compilazione a livello di progetto codifica UTF8 per STRING è abilitata. Anche le funzioni della libreria e i componenti aggiuntivi sono orientati in base a questa impostazione.
Se si utilizzano singole stringhe codificate UTF-8, bisogna assicurarsi che vengano interpretate correttamente ovunque vengano utilizzate. Ad esempio, una variabile stringa nel server OPC sarà convertita in UTF-8 prima di essere trasferita a un client se l'impostazione non è selezionata. Valori come «UTF8#'äöü'» verrebbero interpretati in modo errato. Problemi simili possono verificarsi quando si producono stringhe nella visualizzazione.